package com.example.chamberlainserver.Service;

import com.example.chamberlainserver.Entry.ShiftTime;
import com.example.chamberlainserver.dto.PageResult;

import java.util.List;
import java.util.Map;

/**
 * 班次时间服务接口
 */
public interface ShiftTimeService {
    /**
     * 添加班次时间
     */
    boolean addShiftTime(ShiftTime shiftTime);
    
    /**
     * 根据ID查询班次时间
     */
    ShiftTime getShiftTimeById(String id);
    
    /**
     * 根据班次类型查询班次时间
     */
    List<ShiftTime> getShiftTimesByType(String shiftType);
    
    /**
     * 查询所有启用的班次时间
     */
    List<ShiftTime> getActiveShiftTimes();
    
    /**
     * 查询所有班次时间
     */
    List<ShiftTime> getAllShiftTimes();
    
    /**
     * 更新班次时间
     */
    boolean updateShiftTime(ShiftTime shiftTime);
    
    /**
     * 删除班次时间
     */
    boolean deleteShiftTime(String id);
    
    /**
     * 启用/禁用班次时间
     */
    boolean updateShiftTimeStatus(String id, Boolean isActive);
    
    /**
     * 分页查询班次时间列表
     */
    PageResult<ShiftTime> getPagedShiftTimeList(Map<String, Object> params);
    
    /**
     * 验证班次时间配置
     */
    boolean validateShiftTimeConfig(ShiftTime shiftTime);
}